package com.vhall.component.controller.rbac.facade;

import com.vhall.component.entity.rbac.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/**
 * 直播间角色权限
 *
 * @author longzhen.gong
 * @date 2021/6/10 17:10
 */
@Api(tags = "vhall-component-plugin-rbac", value = "直播间角色权限")
@FeignClient(name = "RbacAccessFacade", path = "/v4/rbac/access")
public interface RbacAccessFacade {

    /**
     * 获取权限列表
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @ApiOperation("获取权限列表")
    @GetMapping(value = "/list")
    List<AccessVO> list(@Validated AccessListReqVO reqVO);

    /**
     * 获取用户的操作记录
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @ApiOperation("获取用户的操作记录")
    @GetMapping(value = "/get-log")
    List<AccessOpLogVO> getLog(@Validated AccessOpLogListReqVO reqVO);

    /**
     * 获取用户权限列表
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @ApiOperation("获取用户权限列表")
    @GetMapping(value = "/user-list")
    List<Integer> userList(@Validated AccessUserListReqVO reqVO);

    /**
     * 导入权限表
     *
     * @return 导入结果
     */
    @ApiOperation("导入权限表")
    @PostMapping(value = "/add")
    Boolean add();

}
